Conversation
7ee1b81 to
1ba4286
Compare
73f986b to
7d0ddae
Compare
7d0ddae to
08f8f04
Compare
08f8f04 to
5a173d1
Compare
5a173d1 to
11f0576
Compare
11f0576 to
4c095a8
Compare
d616ea9 to
cbcd089
Compare
f5cbb0e to
ee62ea2
Compare
a97eec8 to
6c1a445
Compare
Contributor
Author
|
This PR have a known bug related to due to camel casing table identifier in typescript bindings, I have @coolreader18 to look into that. |
joshua-spacetime
approved these changes
Feb 20, 2026
Collaborator
joshua-spacetime
left a comment
There was a problem hiding this comment.
Most of this change set has already been reviewed and approved by various individuals including myself in the form of other PRs targeting this branch. Pending the tests succeeding, this should be ready to merge.
The tbl() helper was using toCamelCase(name) at runtime to look up tables on ctx.db, but the table accessor names (keys in the schema object) were snake_case. This mismatch caused 'Cannot read properties of undefined' errors for every insert/delete reducer. Fix: use camelCase keys directly in the table definitions (matching TypeScript convention), and access ctx.db[name] without runtime conversion. Remove the now-unused toCamelCase import.
612eb2c to
777c330
Compare
In db_connection_impl.ts, reducers and procedures were recomputing accessor names with toCamelCase(name) instead of using the accessorName already set on the definition. Tables already used tbl.accessorName directly. Make reducers and procedures consistent.
Re-ran spacetime generate for both modules to pick up codegen changes. Removes stale files (schedule_proc_type, scheduled_proc_procedure, scheduled_proc_table_table, player_location_table) that are no longer generated because those tables are private/scheduled.
Regenerate verified snapshots for server, diag, and explicitnames fixtures. Main change: index AccessorName is now populated where it was previously null.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description of Changes
Update the Default casing policy to
snake_caseforRawModuleDefV10.Messy PR contains changes at different places, so that CI can pass:
Here are the main changes as follows:
bindings-macro&bindingscrate:namemacro in Indexes for canonical name and supply it toRawModuleDefV10viaExplicitNames.bindings-typescript:binding-csharp: a single line change to passsourceNameof index instead of null.codegen:Changes has been merged from branch - Use accessor_name for generated identifiers in codegens #4337.
Except a fix in rust codegen to use canonical name in Query buillder instead of accessor.
lib/db/raw_def: ExtendsRawDefModuleV10structure to support case conversion.schemacrate:validate/v9- Nothing itself should change or changes in v9 validation logic but the file contains aCoreValidatorwhich is shared withvalidate/v10. No test have t be updated tovalidate/v9which ensures we aren't regressing it.validate/v10: This is the main meat, look at the new tests added in bottom to understand what it does.Rest of the files are either test updates or module bindings.
Testing:
ModuleDefis correct.I have removed
sql.pysmoketest, as that seems to be already migated in new framework and was headache to update.Expected complexity level and risk
4, It could have side-effect which aren't easily visible.